#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;

int main() {

    int n,x,k,pos;
    cin>>n>>x>>k;
    vector<int> vecArr(n);
    for(int i=0;i<n;++i){
        cin>>vecArr[i];
        if(vecArr[i]==x){
            pos=i;
        }
    }
    vector<int> vecLeft(pos+1);
    for(int i=1;i<=pos;++i){
        vecLeft[i]=vecLeft[i-1]+(vecArr[pos-i]<x?1:0);
    }
    unordered_map<int,int> hasRight;
    int rightCnt=0;
    hasRight[0]=1;
    for(int i=1;i<n-pos;++i){
        rightCnt+=vecArr[i+pos]<x?1:0;
        ++hasRight[rightCnt];
    }
    int nRet=0;
    for(int i=0;i<=pos;++i){
        if(k-1-vecLeft[i]>=0){
            nRet+=hasRight[k-1-vecLeft[i]];
        }
    }
    cout<<nRet<<endl;

    return 0;
}
